package ProjetoCompreJa.Negocios;

import br.com.classesbasicas.Produto;
import ProjetoCompreJa.DAO.DAOEspecifico.DAOProduto;
import java.util.List;

public class Negocios_Produto {

    public void CadastrarProduto(Produto p) throws Exception {
        List<Produto> listap = this.listarProdutos();
        for (int i = 0; i < listap.size(); i++) {
            if (p.getId() == listap.get(i).getId()) {
                throw new Exception("Codigo de Produto informado já existe");
            }
            if (p.getNome_produto() == null ? listap.get(i).getNome_produto() == null : p.getNome_produto().equals(listap.get(i).getNome_produto())) {
                throw new Exception("Nome do Produto informado já existe");
            }
            if (p.getNome_produto().length() <= 3) {
                throw new Exception("Informe um Nome de Produto com caracteres maior que 3");
            }
            if (p.getNome_produto().trim().equals(" ") == true) {
                throw new Exception("O Nome do Produto se encontra Vazio");
            }
            if (p.getNome_produto() != p.getNome_produto().trim()) {
                throw new Exception("O Nome do Produto não pode conter espaços nem no inicio nem no fim da palavra");
            }
            if (p.getId() <= -1) {
                throw new Exception("O Campo Codigo só deve conter números inteiros");
            }
            if (p.getPreco() <= 0.0) {
                throw new Exception("Informe um valor maior que zero ao Preço");
            }

        }

        DAOProduto info = new DAOProduto();
        info.Cadastrar(p);

    }

    public List<Produto> listarProdutos() throws Exception {
        DAOProduto dados = new DAOProduto();
        return dados.ListarTodos();
    }

    public void excluirProduto(Produto p) throws Exception {
        DAOProduto delete = new DAOProduto();
        delete.ExcluirProduto(p);
    }

    public void alterarProduto(Produto p) throws Exception {
        DAOProduto alterar = new DAOProduto();
        alterar.AlterarProduto(p);

    }
}
